iT邦幫忙

DAY 7
0

實習、專題除錯筆記系列 第 7

實習、專題除錯筆記(七)為什麼 Angular 變數怎麼設定都是 undefined?

  • 分享至 

  • xImage
  •  

問題七 為什麼 Angular 變數怎麼設定都是 undefined?

你在前面進行宣告並初始化,但是後面 log 出來的變數卻還是 undefined,這不是 Angular 有問題,這個原因是 $scope 不同。

但是為什麼會不同呢?明明變數都是 $scope 開頭,難道還有什麼其他的 $scope 嗎?問題就在於打包的套件!當你在使用套件的時候,裡面的 $scope 如果有繼承,在套件內要使用外面的父節點的 $scope ,則必須加上 $parent 才能存取。

但 是如果是沒有繼承呢?那可能就需要看第三方套件有沒有提供傳輸數值的功能,不然就只能改 API 囉!我下面準備了一個今天實習時碰到的問題,ui- bootstarp 的 Model 內部的 $scope 是獨立的,它沒有繼承到任何的 $scope ,所幸他有提供傳輸數值的功能才能解決問題。

範例中我最前面宣告了全域變數並初始化

$scope.ironman7 = 1

我們利用 $log 來 log 在 Model 中的數值

$log.info('Modal inside at: ' + new Date()+   "======> "   +$scope.ironman7  );

但是 log 出來會向下面這樣

"Modal inside at: Tue Sep 23 2014 23:01:24 GMT+0800======> undefined"

表示它根本沒有存取到 $scope.ironman7

在這個例子如果有要傳回數值 ,請利用 $close(result) 跟 modalInstance.result.then(function (selectedItem) { ... 這兩個部份來傳輸 ,就不詳細說明了。

http://plnkr.co/edit/1M3U5fFmpnsuCjLOF8r9?p=preview


上一篇
實習、專題除錯筆記(六)我用 coffeescript 為什麼錯誤的時候顯示的行數是錯誤的?
下一篇
實習、專題除錯筆記(八)Coffee 常見的錯誤,空白
系列文
實習、專題除錯筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言